The invention relates to communications systems and methods, and, more particularly, to digital communications systems and associated methods over parallel communications channels.
Digital communications are widely used for the transmission of voice, data and video information. Such transmission can extend over large geographical distances, between components within a personal computer, or only between adjacent circuit portions on an integrated circuit. Certain such communications applications benefit from or require the conversion of serial data into parallel data for simultaneous transmission over parallel communications channels. At the receiving end, the parallel data is desirably converted back into the serial data, and with the bits or symbols in the correct order to avoid data errors.
Unfortunately, the demand for greater data transmission volumes and at ever higher speeds, may result in skew at the receiver. In other words, the parallel communications channels may introduce different delays to the parallel symbol strings they carry. Because of skew, the parallel symbol strings at the receiver can then no longer be simply reassembled into the starting data.
The skew problem with parallel communications channels has been addressed in a number of ways. For example, U.S. Pat. No. 4,677,618 to Haas et al. recognized the dispersion introduced by wavelength division multiplexed communications channels over optical fiber. This patent discloses determining the relative delays between the channels based upon detecting two bits in a given byte of data. The relative times of arrival of the remaining bits in a byte are predetermined using the relative delay between the two detected bits and the known frequency-related dispersion characteristics of the transmission medium. Certain bits in each received byte may then be delayed using clock delay lines or registers, thereby accounting for skew.
Along similar lines, U.S. Pat. No. 5,157,530 to Loeb et al. also determines and accounts for skew imparted by dispersion in fiber optic wavelength division multiplexing. Relative delays are used to control adjustable delay devices in each channel.
U.S. Pat. No. 5,408,473 to Hutchinson et al. is directed to a technique for synchronizing run-length-limited data transmitted over parallel communications channels. Block boundary synchronization is established during connection initialization by using a property of a required HALT code to detect block boundaries received in each channel. Skew compensation is effected by comparing the times of detection of the block boundaries in the two channels, and appropriately controlling a variable delay in at least one of the channels. If there is a subsequent loss of synchronization, detected transmission errors will eventually result in connection reinitialization and reestablishment of synchronization. Unfortunately, the transmission of the fixed HALT code to detect boundaries may result in false boundary detection. Moreover, since synchronization is not continuously maintained, the technique may be impractical for higher data rates.
U.S. Pat. No. 5,793,770 to St. John et al. is directed to a high-performance parallel interface (HIPPI) to a synchronous optical network (SONET) gateway, and wherein electronic logic circuitry formats data and overhead signals into a data frame for transmission over a fiber optic channel. Stripe skew adjustment is based upon SONET framing, and, as such, the circuitry is relatively complicated, comprising as many as 20,000 logic gates, for example.
The difficulty with skew caused by parallel communications channels is also an important issue to be addressed in communications channels between integrated circuit devices. For example, higher transmission speeds increase the sensitivity to skew, as there is a smaller time window to correctly identify a received bit and have it properly align with bits received on the other parallel communications channels. To provide a higher aggregate transmission rate, the number of parallel communications channels can be increased, without increasing the speed of any given communications channel. However, this may result in significant costs for the additional communications channels. Moreover, for communications between integrated circuits, increasing the number of communications channels increases the number of pins needed for connecting the IC. The number of pins and additional packaging complexity may significantly increase the costs of such approaches.
Significant advances in approaches to deskewing are disclosed in published international patent application WO 36,797 A1, entitled xe2x80x9cCOMMUNICATIONS SYSTEM AND ASSOCIATED DESKEWING METHODSxe2x80x9d which is assigned to the assignee of the present invention, and the entire disclosure of which is incorporated herein by reference. The application discloses a string-based framing coder which determines and appends a string-based framing code to each information symbol string of a plurality of such strings to be transmitted over parallel communications channels. The string-based framing code may be a CRC code, for example. At the receiver, a deskewer aligns the received parallel information symbol strings based upon the framing codes. This approach does consume a portion of the bandwidth, although relatively small, but which would otherwise be available for transmitting information. In certain applications this available bandwidth reduction may be undesired.
An alternate approach to address the need for deskewing has been developed by engineers at Nortel and presented at the Interim Meeting of the Optical Internetworking Forum held in Irvine, Calif. on Jan. 8-10, 2001. In accordance with the disclosed approach, an additional communications channel or reference lane is added in parallel with the communications channels which carry the information. The reference lane carries a pattern of bits based on the bits being carried by the information channels. For example, the reference lane may carry for the first four clock cycles, the information bits carried by the first information channel for the same first four clock cycles. Thereafter, the next four bits carried by the reference lane are the corresponding four bits carried by the second information channel, and so on. This pattern repeats indefinitely. The receiver includes deskewing circuitry which can align the arriving information bits based upon the pattern of reference lane bits. Unfortunately, there is no provision for determining where a particular information word begins or ends in the received information bit strings. In addition, there is no provision for how to use such a technique where the number of communications channels is not equal to the number of bits in a word.
In view of the foregoing background, it is therefore an object of the present invention to provide a communications system and associated methods for operating over parallel communications channels at relatively high rates and while accounting for skew.
These and other objects, features and advantages in accordance with the present invention are provided by a communications system comprising N parallel communications channels connecting first and second devices and comprising Nxe2x88x921 channels for carrying information symbols, and an Nth channel for facilitating deskewing and word framing. The first device may include an alignment symbol generator for generating alignment symbols on the Nth channel, and a word framing code generator for generating word framing codes on the Nth channel. The alignment symbol generator may generate the alignment symbols based upon information symbols on the Nxe2x88x921 channels. In addition, the second device may comprise a deskewer for aligning received information symbols based upon the alignment symbols, and a word framer for determining word framing based upon the word framing codes. The word frame code generator in the first device or transmitter, and the word framer in the second device or receiver provide the desired feature of knowledge of where each word starts or begins. The start of each word may be determined in terms of a time and a corresponding one of the Nxe2x88x921 channels where the word starts.
The word framing code generator may generate word framing codes comprising at least one predetermined or fixed word framing code. For example, the at least one predetermined word framing code may be an F628 hexadecimal code. Alternately, the word framing code generator may generate word framing codes including at least one changeable word framing code based upon information symbols. For example, the at least one changeable word framing code may comprise a CRC code.
In accordance with another aspect of the invention, the first device may further comprise a fill generator for generating fill symbols for transmission on the Nth channel. This fill generator may be used since the Nth channel typically need not be used continuously and since there may be left over space depending on the number of alignment symbols.
For similar reasons, the first device may further comprise an information loader for loading information symbols onto the Nth channel. The information loader may comprise an information field marker for generating symbols indicating the start of loaded information symbols on the Nth channel. Accordingly, the second device can recognize information symbols from the alignment symbols and word framing codes on the Nth channel.
Each information symbol may comprise a binary bit in some embodiments of the invention. The first device may also include an Mxe2x80x2ary-to-Nxe2x88x921xe2x80x2ary converter for converting M information symbols into Nxe2x88x921 information symbols strings for transmission on the Nxe2x88x921 channels. The parallel communications channels may be provided over at least one of a wireline transmission medium, a wireless transmission medium, and an optical transmission medium.
A method aspect of the invention is for communicating over N parallel communications channels comprising Nxe2x88x921 channels for carrying information symbols, and an Nth channel for facilitating deskewing and word framing. The method preferably comprises generating alignment symbols on the Nth channel, generating word framing codes on the Nth channel, aligning received information symbols based upon the alignment symbols, and determining word framing based upon the word framing codes.